import request from '@/utils/request'

/**
 * 获取位置列表（分页）
 * @param {Object} params - 查询参数
 * @returns {Promise}
 */
export function getLocationList(params) {
  return request({
    url: '/api/locations/page',
    method: 'get',
    params
  })
}

/**
 * 获取位置详情
 * @param {number} id - 位置ID
 * @returns {Promise}
 */
export function getLocation(id) {
  return request({
    url: `/api/locations/${id}`,
    method: 'get'
  })
}

/**
 * 添加位置
 * @param {Object} data - 位置信息
 * @returns {Promise}
 */
export function addLocation(data) {
  return request({
    url: '/api/locations',
    method: 'post',
    data
  })
}

/**
 * 更新位置
 * @param {number} id - 位置ID
 * @param {Object} data - 位置信息
 * @returns {Promise}
 */
export function updateLocation(id, data) {
  return request({
    url: `/api/locations/${id}`,
    method: 'put',
    data
  })
}

/**
 * 删除位置
 * @param {number} id - 位置ID
 * @returns {Promise}
 */
export function deleteLocation(id) {
  return request({
    url: `/api/locations/${id}`,
    method: 'delete'
  })
}

/**
 * 设置推荐状态
 * @param {number} id - 位置ID
 * @param {number} status - 状态值
 * @returns {Promise}
 */
export function setRecommendStatus(id, status) {
  return request({
    url: `/api/locations/${id}/recommend/${status}`,
    method: 'put'
  })
}

/**
 * 获取位置类型列表
 * @returns {Promise}
 */
export function getLocationTypeList(params) {
  return request({
    url: '/api/locationTypes/list',
    method: 'get',
    params
  })
}

/**
 * 获取位置类型列表（分页）
 * @param {Object} params - 查询参数
 * @returns {Promise}
 */
export function getLocationTypePage(params) {
  return request({
    url: '/api/locationTypes/page',
    method: 'get',
    params
  })
}

/**
 * 获取位置类型详情
 * @param {number} id - 类型ID
 * @returns {Promise}
 */
export function getLocationType(id) {
  return request({
    url: `/api/locationTypes/${id}`,
    method: 'get'
  })
}

/**
 * 添加位置类型
 * @param {Object} data - 类型信息
 * @returns {Promise}
 */
export function addLocationType(data) {
  return request({
    url: '/api/locationTypes',
    method: 'post',
    data
  })
}

/**
 * 更新位置类型
 * @param {number} id - 类型ID
 * @param {Object} data - 类型信息
 * @returns {Promise}
 */
export function updateLocationType(id, data) {
  return request({
    url: `/api/locationTypes/${id}`,
    method: 'put',
    data
  })
}

/**
 * 删除位置类型
 * @param {number} id - 类型ID
 * @returns {Promise}
 */
export function deleteLocationType(id) {
  return request({
    url: `/api/locationTypes/${id}`,
    method: 'delete'
  })
}

/**
 * 上传位置图片
 * @param {Object} data - 图片数据
 * @returns {Promise}
 */
export function uploadLocationImage(data) {
  return request({
    url: '/api/upload/location',
    method: 'post',
    headers: {
      'Content-Type': 'multipart/form-data'
    },
    data
  })
}